package com.dianrong.common.uniauth.common.bean.request;

import java.util.List;

import io.swagger.annotations.ApiModel;

@ApiModel("组操作请求参数")
public class GroupParam extends Operator {
	private static final long serialVersionUID = -4261321484001881493L;
	
	private Integer id;
	private String code;
	private String name;
	private String description;
	private Byte status;

	//when add
	private Integer targetGroupId;
	//when delete
	private List<Integer> targetGroupIds;
	//if true only group, ignore members under each group
	//if false, both group and members returned
	private Boolean onlyShowGroup;
	//if onlyShowGroup=false and userGroupType=0, then return members, if if onlyShowGroup=false and userGroupType=1 return owners
	private Byte userGroupType;

	private Boolean needOwnerMarkup;

	private Integer roleId;

	private Integer tagId;
	
	private Integer domainId;
	
	private List<Integer> roleIds;
	
	private List<Integer> tagIds;

	private Boolean onlyNeedGrpInfo;
	
	/**
	 *  在返回的user信息列表中是否包含禁用的用户信息
	 */
	private Boolean includeDisableUser;
	
	public Integer getId() {
		return id;
	}

	public GroupParam setId(Integer id) {
		this.id = id;
		return this;
	}

	public String getCode() {
		return code;
	}

	public GroupParam setCode(String code) {
		this.code = code;
		return this;
	}

	public String getName() {
		return name;
	}

	public GroupParam setName(String name) {
		this.name = name;
		return this;
	}

	public String getDescription() {
		return description;
	}

	public GroupParam setDescription(String description) {
		this.description = description;
		return this;
	}

	public Byte getStatus() {
		return status;
	}

	public GroupParam setStatus(Byte status) {
		this.status = status;
		return this;
	}

	public Integer getTargetGroupId() {
		return targetGroupId;
	}

	public GroupParam setTargetGroupId(Integer targetGroupId) {
		this.targetGroupId = targetGroupId;
		return this;
	}

	public Boolean getOnlyShowGroup() {
		return onlyShowGroup;
	}

	public GroupParam setOnlyShowGroup(Boolean onlyShowGroup) {
		this.onlyShowGroup = onlyShowGroup;
		return this;
	}

	public Integer getRoleId() {
		return roleId;
	}

	public GroupParam setRoleId(Integer roleId) {
		this.roleId = roleId;
		return this;
	}

	public Integer getDomainId() {
		return domainId;
	}

	public GroupParam setDomainId(Integer domainId) {
		this.domainId = domainId;
		return this;
	}

	public List<Integer> getRoleIds() {
		return roleIds;
	}

	public GroupParam setRoleIds(List<Integer> roleIds) {
		this.roleIds = roleIds;
		return this;
	}

	public Byte getUserGroupType() {
		return userGroupType;
	}

	public GroupParam setUserGroupType(Byte userGroupType) {
		this.userGroupType = userGroupType;
		return this;
	}

	public Boolean getNeedOwnerMarkup() {
		return needOwnerMarkup;
	}

	public GroupParam setNeedOwnerMarkup(Boolean needOwnerMarkup) {
		this.needOwnerMarkup = needOwnerMarkup;
		return this;
	}

	public List<Integer> getTargetGroupIds() {
		return targetGroupIds;
	}

	public GroupParam setTargetGroupIds(List<Integer> targetGroupIds) {
		this.targetGroupIds = targetGroupIds;
		return this;
	}

	public Integer getTagId() {
		return tagId;
	}

	public GroupParam setTagId(Integer tagId) {
		this.tagId = tagId;
		return this;
	}

	public List<Integer> getTagIds() {
		return tagIds;
	}

	public GroupParam setTagIds(List<Integer> tagIds) {
		this.tagIds = tagIds;
		return this;
	}

  public Boolean getOnlyNeedGrpInfo() {
      return onlyNeedGrpInfo;
  }

  public GroupParam setOnlyNeedGrpInfo(Boolean onlyNeedGrpInfo) {
      this.onlyNeedGrpInfo = onlyNeedGrpInfo;
      return this;
    }

    public Boolean getIncludeDisableUser() {
        return includeDisableUser;
    }

    public GroupParam setIncludeDisableUser(Boolean includeDisableUser) {
        this.includeDisableUser = includeDisableUser;
        return this;
    }

    @Override
    public String toString() {
        return "GroupParam [id=" + id + ", code=" + code + ", name=" + name + ", description=" + description + ", status=" + status + ", targetGroupId=" + targetGroupId
                + ", targetGroupIds=" + targetGroupIds + ", onlyShowGroup=" + onlyShowGroup + ", userGroupType=" + userGroupType + ", needOwnerMarkup=" + needOwnerMarkup
                + ", roleId=" + roleId + ", tagId=" + tagId + ", domainId=" + domainId + ", roleIds=" + roleIds + ", tagIds=" + tagIds + ", onlyNeedGrpInfo=" + onlyNeedGrpInfo
                + ", includeDisableUser=" + includeDisableUser + "]";
    }
}
